package net.realsee.domain.wcs.rcs.hik;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * 海康RCS取消任务参数
 *
 * @author 孙正华
 * @since 2023/8/18 10:04
 */
@Data
public class HikCancelTaskReq {

    /**
     * 请求编号，每个请求都要一个唯一编号， 同一个请求重复提交， 使用同一编号
     */
    private String reqCode;

    /**
     * 请求时间戳，格式: “yyyy-MM-dd HH:mm:ss”
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String reqTime;

    /**
     * 客户端编号，如 PDA，HCWMS 等。
     */
    private String clientCode;

    /**
     * 令牌号, 由调度系统颁发。
     */
    private String tokenCode;

    /**
     * 取消类型
     * 0 表示：取消后货架直接放地上
     * 1 表示：AGV 仍然背着货架， 根据回库区域执行回库指令， 只有潜伏车和 CTU 车支持。
     * 若不传值，默认的取消模式为 0
     */
    private String forceCancel;

    /**
     * forcecancel=1 时有意义，回库区域编号，如果为空，采用货架配置的库区。
     */
    private String matterArea;

    /**
     * 取消该 AGV 正在执行的任务单
     * <p>
     * taskCode 和 agvCode 选一项填写，优先级从高到低依次为：agvCode、taskCode，都传
     * 了优先使用 agvCode，以确定需要取消哪个任务单。
     * </p>
     */
    private String agvCode;

    /**
     * 任务单编号, 取消该任务单
     * <p>
     * taskCode 和 agvCode 选一项填写，优先级从高到低依次为：agvCode、taskCode，都传
     * 了优先使用 agvCode，以确定需要取消哪个任务单。
     * </p>
     */
    private String taskCode;

}
